Video graphics computer systems are well known, popular consumer products. A typical system includes a data processing unit that connects to an ordinary television set for displaying images of a game or other application. The data processing unit receives controlling software from a read only memory (ROM) that is usually packaged in the form of a cartridge. The cartridge is removably plugged into the data processing unit. At least one pointing device, such as a mouse, joystick, touchpad, switch pad, or light gun, is also connected to the data processing unit to allow the player to input positional information that is used by the controlling software to execute the application.
The data processing unit typically has a single central processing unit (CPU) and associated volatile and non-volatile memory, including all random access memory (RAM) and bootstrap read-only memory (boot ROM), a television (RF video) signal generator, and an input/output (I/O) processor to interface to the various pointing devices. These devices are in circuit communication. One distinguishing characteristic of these systems is the use of a motherboard or system planar to electrically connect these components together.
In such computer systems, the components communicate via electrical signals; therefore, many components must be in electrical circuit communication to allow the signals to pass from component to component. These electrical signals are typically carried by electrical connections between the system components. Typical types of electrical connections include metal traces on a printed circuit board (PCB), vias between different levels of multilayer PCBs, plated through holes, plugs, and individual wires connected from pin to pin of system components. Typically groups of electrical signals and groups of electrical connections that carry the electrical signals are referred to as a "bus." Thus, a reference to a "bus" can indicate a reference to a group of electrical signals, a group of electrical connections that carry the electrical signals, or a reference to both a group of electrical signals and a group of electrical connections that carry the electrical signals.
Buses are typically made up of "bus lines." A reference to an individual "bus line" may refer to an electrical connection of a bus or an electrical signal of a bus. The memory in computer systems is broken up into small sections called "bytes." Each byte in memory has a unique "address," similar to the unique addresses of personal residences. The information stored in memory is called "data." A computer system typically has three buses: an ADDRESS bus, a DATA bus, and a CONTROL bus. When a computer reads a piece of information from a particular address in memory, the CPU asserts the address of that particular point in memory onto the ADDRESS bus, then the CPU communicates to the memory chip to that the CPU desires to access the information stored in that address using the CONTROL bus. Then the memory chip asserts the information stored at that location onto the DATA bus. Finally, the CPU reads the data from the DATA bus. The above process is very fast, occurring at up to millions of times per second.
In typical cartridge-based systems, the ADDRESS bus, the DATA bus, and the CONTROL bus are extended out of the data processing unit through the connector to the electrical devices within the cartridge. Thus, while the cartridge is connected to the data processing unit, the program ROM in the cartridge is as much in electrical circuit communication with the CPU as is the bootstrap ROM and the system RAM within the data processing unit.
The commercial success of such systems motivates other, nonmanufacturing parties to design and manufacture competing cartridges and competing data processing units. The unauthorized cartridges are capable of executing in authorized data processing units; likewise, the unauthorized data processing units are capable of executing the programs contained within authorized cartridges. Such competing devices are not always "fully compatible" with authentic devices; therefore, unauthorized devices might malfunction. Moreover, incompatibilities in such unauthorized devices might cause the authorized devices to malfunction, thereby tarnishing the image of entities that manufacture authorized cartridges and authorized data processing units.
Moreover, authentic devices are typically designed and marketed to execute programs that are somewhat sophisticated in design and polished in execution. Allowing others to market programs or data processing units lacking similar sophistication and quality further tarnishes the image of entities manufacturing authorized cartridges and authorized data processing unitsThus, in cartridge-based computer systems it is desirable to prevent two types of unauthorized use: (1) the use of an unauthorized cartridge in an authorized processor unit and (2) the use of an authorized cartridge in an unauthorized processor unit. Thus, it is desirable to have the capability of authenticating a cartridge for use in a data processing unit and preventing unauthorized use of cartridges. Typical prior art devices do not provide a cost-effective, satisfactory solution to the problem.
An example of one such prior art system is found in U.S. Pat. No. 4,799,635 issued to Nakagawa on Jan. 24, 1989, which is directed to an authentication technique for a cartridge-based game unit. Software-controlled microprocessors exist in each of the data processing unit and the cartridge for executing related algorithms whose results are then compared. When a cartridge is inserted into the data processing unit, a satisfactory comparison must be made before the game unit will accept and operate with the cartridge. This approach is rather complicated and adds to the cost of manufacturing the cartridge, because a microcontroller must be added to the cartridge design.
Therefore it is desirable to provide a simpler security circuit for a ROM cartridge that causes a host data processing unit to only accept authentic cartridges and that prevents use of an authentic cartridge in unauthorized systems.
In addition, typical prior art systems have a single system bus for passing data among the various components. Having only one system bus reduces system performance because all I/O devices depend on the CPU for memory accesses. Moreover, typical systems do not provide an integrated solution to handling high-performance video, graphics, and sound problems.